Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - [C++] Puntatore nodo parent in albero Red-Black
Forum - C/C++ - [C++] Puntatore nodo parent in albero Red-Black

Avatar
flavio89 (Normal User)
Rookie


Messaggi: 26
Iscritto: 07/09/2011

Segnala al moderatore
Postato alle 12:32
Sabato, 28/01/2012
Ragazzi salve.
Sto implementando un albero binario Red-Black, e avrei una difficoltà legata a come trovare il puntatore al padre di ogni nodo.

Questa è la classe albero.
ELENCO è una typedef di list<string>.
Codice sorgente - presumibilmente C/C++

  1. class RedBlack : public word{
  2.      private:
  3.           color colore;
  4.           RedBlack* left, *right;
  5.           RedBlack* parent;
  6.  
  7.      public:
  8.           RedBlack* build () ;                                             // inizializza un albero vuoto
  9.           RedBlack* set_root (ELENCO);                      // inserisce il primo elemento
  10.           color get_col () {return colore;};
  11.           RedBlack* insert (RedBlack*&, string);
  12.           void write (RedBlack*,int);
  13. };



Io avevo pensato di caricare i nodi in uno stack mediante una lista ogni volta che scorrevo l' albero.
E' la soluzione migliore oppure qualcuno ha un' idea migliore?

Vi ringrazio

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 12:06
Domenica, 29/01/2012
Ma non è parent il padre del nodo?

PM Quote
Avatar
flavio89 (Normal User)
Rookie


Messaggi: 26
Iscritto: 07/09/2011

Segnala al moderatore
Postato alle 12:27
Domenica, 29/01/2012
certo.
Ma la mia domanda era: "come faccio a far puntare il puntatore *parent al padre del nodo?"

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 10:54
Martedì, 31/01/2012
Nella fase di inserimento devi assegnare un valore a quel campo, così come fai con left e right.

PM Quote